// 角色管理
// basic/role

package basic

import (
	"api/models"
	"api/src"
)

type RoleC struct {
	src.BaseC
}

func (c RoleC) Search() {
	filter := src.Filter{PageSize: -1}
	table, errMsg := c.ReadData(src.ReadParams{Model: models.Role{}, Filter: filter})
	if errMsg != "" {
		c.ServerJSON(src.Msg{false, errMsg}, 500)
		return
	}

	// 额外获取菜单数据
	menu, errMsg := c.ReadData(src.ReadParams{Model: models.Menu{}, Sort: "id", Filter: filter})
	if errMsg != "" {
		c.ServerJSON(src.Msg{false, errMsg}, 500)
		return
	}

	// 额外获取资源数据
	res, errMsg := c.ReadData(src.ReadParams{Model: models.Resource{}, Sort: "id", Filter: filter})
	if errMsg != "" {
		c.ServerJSON(src.Msg{false, errMsg}, 500)
		return
	}

	data := map[string]interface{}{}
	data["tableData"] = table.TableData
	data["menuData"] = menu.TableData
	data["resData"] = res.TableData
	c.ServerJSON(src.Response{true, data})
}

func (c RoleC) Add() {
	c.Create(&models.Role{})
}

func (c RoleC) Edit() {
	c.Update(models.Role{})
}

func (c RoleC) Remove() {
	c.Del(models.Role{})
}
